Host controllers are common in computer systems. Many host controllers control an interconnect (i.e. bus) subsystem that operates using a specific protocol. For example, a computer system that utilizes Universal Serial Bus (USB) input/output (I/O) subsystem requires at least one USB host controller. Other protocols utilize their own host controllers, such as Serial Advanced Technology Attachment (SATA), among others. The host controller communicates with compatible devices attached to the host controller. Many times these devices are attached through ports, such as in the case of USB. These ports can include external ports that actual have a physical plug-in interface on the external casing of a computer system and they can also include internal ports for permanent devices such as an integrated webcam in a laptop computer.
For many protocol subsystems, such as USB, there is a maximum number of ports that a given host controller has the capability of controlling. Different versions of the USB implementation allow differing numbers of ports to control. Because of the cap in number of ports for a single host controller, many advanced computer systems today have multiple host controllers for a single protocol. For example, in a USB 1.1 case, a single host controller can control two ports. In a USB 2.0 case, a single host controller can control up to eight ports. If a computer system needs more than 8 USB 2.0 ports, the computer system would require at least two USB 2.0 host controllers to manage the requirement and maintain good bandwidth. Each host controller that is operational in the computer system consumes power. Many advanced computer systems today have the capability to manage the power of a component within the computer system by putting the component into a low power mode.